//
//  UIButton+Extension.swift
//  JKWeibo
//
//  Created by albert on 16/5/12.
//  Copyright © 2016年 albert. All rights reserved.
//

import UIKit

// UIButton分类
extension UIButton {
    /**
     如果构造方法前面没有convenience，代表这是一个初始化构造方法（指定构造方法）
     如果构造方法前面有convenience，代表这是一个便利构造方法
     
     指定构造方法和便利构造方法的区别：
     1.指定构造方法中必须对所有的属性进行初始化
     2.便利构造方法中不用对所有的属性进行出会话，因为便利构造方法依赖于指定构造方法
     一般情况下，如果想给系统的类提供一个快速的创建方法，就自定义一个便利构造方法
     */
    convenience init(imageName: String?, backgroundImageName: String?){
        
        // 便利构造方法依赖于指定构造方法，必须先初始化属性
        // 因为我们并不知道UIButton有多少属性，所以让系统自动初始化
        self.init()
        
        if let imgName = imageName {
            // 1.设置前景图片
            setImage(UIImage(named: imgName), forState: UIControlState.Normal)
            setImage(UIImage(named: imgName + "_highlighted"), forState: UIControlState.Highlighted)
        }
        
        if let backImgName = backgroundImageName {
            // 2.设置背景图片
            setBackgroundImage(UIImage(named: backImgName), forState: UIControlState.Normal)
            setBackgroundImage(UIImage(named: backImgName + "_highlighted"), forState: UIControlState.Highlighted)
        }
        
        // 3.调整按钮尺寸
        sizeToFit()
    }
}